﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AutomationMLMapper.ViewModels.CAEXObjectCollectionViewModels;
using AutomationMLMapper.ViewModels.CAEXObjectViewModels;
using CAEX_ClassModel;
using AutomationMLMapper.AutomationML.Extensions;

namespace AutomationMLMapper.ViewModels.PaneViewModels
{
    public class DifferentRolesViewModel: PaneViewModel
    {
        /// <summary>
        ///  <see cref="AddedRolesCollection"/>
        /// </summary>    
        private RoleClassCollectionViewModel addedRolesCollection;

        /// <summary>
        ///  Gets and sets the  Collection of RoleClasses <see cref="RoleClassCollectionViewModel" /> of the RoleClassLib,
        ///  which have been added to the Partner Library
        /// </summary>
        public RoleClassCollectionViewModel AddedRolesCollection
        {
            get { return addedRolesCollection; }
            set { addedRolesCollection = value; OnNotifyPropertyChanged("AddedRolesCollection"); }
        }
        /// <summary>
        ///  <see cref="AddedRolesCollection"/>
        /// </summary>    
        private RoleClassCollectionViewModel missingRolesCollection;

        /// <summary>
        ///  Gets and sets the  Collection of RoleClasses <see cref="RoleClassCollectionViewModel" /> of the RoleClassLib,
        ///  which are missing in the Partner Library
        /// </summary>
        public RoleClassCollectionViewModel MissingRolesCollection
        {
            get { return missingRolesCollection; }
            set { missingRolesCollection = value; OnNotifyPropertyChanged("MissingRolesCollection"); }
        }
        /// <summary>
        ///  <see cref="AddedRolesCollection"/>
        /// </summary>    
        private RoleClassCollectionViewModel changedRolesCollection;

        /// <summary>
        ///  Gets and sets the  Collection of RoleClasses <see cref="RoleClassCollectionViewModel" /> of the RoleClassLib,
        ///  which have been changed in the Partner Library
        /// </summary>
        public RoleClassCollectionViewModel ChangedRolesCollection
        {
            get { return changedRolesCollection; }
            set { changedRolesCollection = value; OnNotifyPropertyChanged("ChangedRolesCollection"); }
        }
                

        /// <summary>
        ///  <see cref="CollectionOwner"/>
        /// </summary>    
        private RoleClassLibViewModel collectionOwner;

        /// <summary>
        ///  Gets and sets the Owner of the <see cref="RolesCollection"/>. 
        ///  The Owner is a <see cref="SystemUnitClassViewModel"/>
        /// </summary>
        public RoleClassLibViewModel CollectionOwner
        {
            get { return collectionOwner; }
            set { collectionOwner = value; OnNotifyPropertyChanged("CollectionOwner"); }
        }

        
    }
}
